package algo3c3g3.view;

import java.net.URL;
import java.util.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.ImageIO;

/**
 * Guarda las imagenes usadas en el juego.
 */
public class Sprites
{
    private Map<String, BufferedImage> sprites = new HashMap<String, BufferedImage>();

    private BufferedImage loadImage(String name)
    {
        try
        {
            //URL url = getClass().getClassLoader().getResource(name);
            URL url = new File(name).toURI().toURL();
            System.out.println(url);
            return ImageIO.read(url);
        }
        catch(Exception e)
        {
            System.out.println("No se encontro el archivo " + name);
            System.exit(0);
            return null;
        }
    }
    
    /**
     * Carga la imagen en memoria y devuelve un BufferedImage conteniendo
     * esa imagen.
     */
    public BufferedImage loadSprite(String name)
    {
        // Si el nombre es null, devuelve null, para que
        // drawImage() no haga nada.
        if(name == null) return null;
        
        BufferedImage img = sprites.get(name);

        // No esta en el hashmap
        if(img == null)
        {
            img = loadImage(name);
            sprites.put(new String(name), img);
        }
        
        return img;
    }
}
